package main

import (
	"fmt"
	"net"
	"os"
)

func main() {
	//主动发起连接请求
	conn, err := net.Dial("tcp", "localhost:8888")
	if err != nil {
		fmt.Println("net.Dial() error:", err)
		return
	}
	defer conn.Close()

	//获取用户键盘输入(os.sdin) 将输入数据发送给服务器
	go func() {
		str := make([]byte, 4*1024)
		for {

			n, err := os.Stdin.Read(str)
			if err != nil {
				fmt.Println("os.Stdin.Read() err :", err)
				continue
			}
			//写给服务器，读多少，写多少
			conn.Write(str[:n])
		}
	}()

	//回显服务器挥发的大写数据
	buf := make([]byte, 4*1024)
	for {
		n, err := conn.Read(buf)
		if err != nil {
			fmt.Println("conn.Read() err :", err)
			continue
		}

		fmt.Println("客户端读到服务器回发：", string(buf[:n]))
	}
}
